From: Luca Bacci Date: Tue, 23 Aug 2022 12:54:01 +0000 (+0200) Subject: GdkWin32: Position popups on the primary monitor if outside of the visible screen... X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~3^2~60^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d125fcd35ac2a547e7ad698aa8841927c0ef7366;p=gtk4.git GdkWin32: Position popups on the primary monitor if outside of the visible screen area Fixes a crash caused by attempting to dereference a NULL GdkMonitor* in GdkWin32. See https://gitlab.gnome.org/GNOME/gtk/-/issues/5125 --- diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index 6fc15f3815..a94e43b68d 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -1180,6 +1180,11 @@ gdk_win32_surface_layout_popup (GdkSurface *surface, monitor = gdk_surface_get_layout_monitor (surface, layout, gdk_win32_monitor_get_workarea); + if (!monitor) + { + GdkDisplay *display = gdk_surface_get_display (surface); + monitor = gdk_win32_display_get_primary_monitor (display); + } gdk_win32_monitor_get_workarea (monitor, &bounds); gdk_popup_layout_get_shadow_width (layout,